﻿//var idClienteDetalle=0;

function InitUsuariosGrid() {
    $("#GridTableClientes").jqGrid
			(
			{
			    url: '/ModuloClientes.aspx?listado=true&',
			    dataType: 'xml',
			    colNames: ['id', 'Razon Social', 'Nombre Comercial', 'Categoria', 'Vendedor', 'Saldo', 'Credito'],
			    colModel: [
				{ name: 'id', index: 'id', width: 35, align: 'right' },
				{ name: 'razonsocial', index: 'razonsocial', width: 200 },
                { name: 'nombrecomercial', index: 'nombrecomercial', width: 220 },
                { name: 'Categoria', index: 'nombreCategoria', width: 165 },
                { name: 'vendedorasignado', index: 'vendedorasignado', width: 120 },
				{ name: 'SaldoActual', index: 'saldoactual', width: 80, formatter: 'currency', align: 'right' },
				{ name: 'LimiteCredito', index: 'limitecredito', width: 80, formatter: 'currency', align: 'right' }
				],
			    rowNum: 30,
			    width: 1020,
			    height: GridTotalHeight,
			    rowList: [10, 20, 30, 50, 100, 200, 300, 500, 1000],
			    sortname: 'id',
			    pager: $('#pagerTableClientes'),
			    viewrecords: true,
			    caption: "Listado de Clientes",
			    footerrow: true,
			    userDataOnFooter: true,
			    altRows: true,
			    ondblClickRow: function (id, linea, columna, evento) {
			        CargarPaginaCliente('/ModuloClientes.aspx?detalle=true&idCliente=' + id);
			    }
			}
			);
    buscadorJQGrid('GridTableClientes', 'pagerTableClientes', 'Buscar', 22);


}



function InitClienteDetalle() {
    $("#TableCotCliente").jqGrid
	(
	{
	    url: '/ModuloVentas.aspx?listado=true&idCliente=' + idClienteDetalle + '&',
	    dataType: 'xml',
	    colNames: ['Cot.', 'Fecha', 'Status','Status Texto', 'Razon social', 'Nombre Comercial', 'Total', 'Pagado', 'Pendiente', 'Saldo', 'cosa', 'Critic'],
	    colModel: [
	    //id,clave,descripcion,idmarca,idcategoria,idfamilia,precio1,precio2,precio3,especifiaciones
			{name: 'id', index: 'C.id', width: 35, align: 'right' },
            { name: 'fechaCreacion', index: 'C.fechaCreacion', width: 55, align: 'center' },
            { name: 'Status', index: 'status', width: 20, align: 'center' },
            { name: 'Status', index: 'status', width: 16,hidden: true, align: 'left' },
            { name: 'RazonSocial', index: 'Total', hidden: true },
			{ name: 'NombreComercial', index: 'SaldoPendiente', hidden: true },
            { name: 'Total', index: 'Total', width: 70, formatter: 'currency', align: 'right' },
            { name: 'SaldoPagado', index: 'SaldoPendiente', hidden: true },
            { name: 'SaldoPendiente', index: 'SaldoPendiente', width: 70, formatter: 'currency', align: 'right' },
            { name: 'DiasCredito', index: 'SaldoPendiente', hidden: true },
            { name: 'DiasVencidos', index: 'SaldoPendiente', hidden: true },
            { name: 'Critic', index: 'SaldoPendiente', hidden: true }
		],
	    rowNum: 30,
	    rowList: [10, 20, 30, 50, 100, 200, 300, 500, 1000],
	    sortname: 'C.id',
	    pager: $('#pagerTableCotCliente'),
	    viewrecords: true,
	    caption: 'Cotizaciones',
	    width: 360,
	    height: GridTotalHeight - 8,
	    footerrow: true,
	    userDataOnFooter: true,
	    altRows: true,
	    ondblClickRow: function (id, linea, columna, evento) {
	        CargarPaginaVentas2('/ModuloVentas.aspx?idVenta=' + id + '&detalle=true');
	    }
        , loadComplete: function () {
            var rowIDs = $("#" + this.id).getDataIDs();
            for (var i = 0; i < rowIDs.length; i = i + 1) {
                rowData = $("#" + this.id).getRowData(rowIDs[i]);
                var trElement = $("#" + rowIDs[i], $('#' + this.id));
                if (rowData.Critic == " critic ") {
                    trElement.removeClass('ui-widget-content');
                    trElement.addClass('critic');
                }
                if (rowData.Critic == " urgent ") {
                    trElement.removeClass('ui-widget-content');
                    trElement.addClass('urgent');
                }
            }

        }
	}
	);
    buscadorJQGrid('TableCotCliente', 'pagerTableCotCliente', '', 22);


    $("#TablePagosCliente").jqGrid
			(
			{
			    url: '/ModuloClientes.aspx?listado=true&xmlpagos=true&idCliente=' + idClienteDetalle + '&',
			    dataType: 'xml',
			    colNames: ['id','Cotizacion', 'Factura','Fecha',  'Medio', 'Cuenta', 'Total'],
			    colModel: [
				    { name: 'P.id', index: 'P.id', width: 30, align: 'right' },
                    { name: 'C.id', index: 'C.id', width: 30, align: 'right' },
                    { name: 'folioFactura', index: 'folioFactura', width: 35, align: 'left' },
                    { name: 'FEchaRealizacion', index: 'FEchaRealizacion', width: 45, align: 'center' },
                    { name: 'tipoMov',width: 50, index: 'tipoMov',hidden: true },
			        { name: 'Alias',width: 40, index: 'Alias' },
                    { name: 'TotalPago', index: 'TotalPago', width: 55, align: 'right',formatter: 'currency' }
                   
				],
			    rowNum: 30,
			    rowList: [10, 20, 30, 50, 100, 200, 300, 500, 1000],
			    sortname: 'P.id',
			    viewrecords: true,
			    caption: 'Pagos Realizados',
			    pager: $('#pagerTablePagosCliente'),
			    width: 360,
			    height: (GridTotalHeight /2)-55,
			    footerrow: true,
			    userDataOnFooter: true,
			    altRows: true,
			    ondblClickRow: function (id, linea, columna, evento) {
			        CargarPaginaVentas2('/ModuloVentas.aspx?idVenta=' + id + '&detalle=true');
			    }
			}
			);
			// buscadorJQGrid('TablePagosCliente', 'pagerTablePagosCliente', '', 22);
			$("#TablePagosCliente1").jqGrid
			(
			{
			    url: '/ModuloClientes.aspx?listado=true&xmlpagos=true&idCliente=' + idClienteDetalle + '&',
			    dataType: 'xml',
			    colNames: ['id', 'Cotizacion', 'Factura', 'Fecha', 'Medio', 'Cuenta', 'Total'],
			    colModel: [
				    { name: 'P.id', index: 'P.id', width: 30, align: 'right' },
                    { name: 'C.id', index: 'C.id', width: 30, align: 'right' },
                    { name: 'folioFactura', index: 'folioFactura', width: 35, align: 'left' },
                    { name: 'FEchaRealizacion', index: 'FEchaRealizacion', width: 45, align: 'center' },
                    { name: 'tipoMov', width: 50, index: 'tipoMov', hidden: true },
			        { name: 'Alias', width: 40, index: 'Alias' },
                    { name: 'TotalPago', index: 'TotalPago', width: 55, align: 'right', formatter: 'currency' }

				],
			    rowNum: 30,
			    rowList: [10, 20, 30, 50, 100, 200, 300, 500, 1000],
			    sortname: 'P.id',
			    viewrecords: true,
			    caption: 'Pagos Realizados',
			    pager: $('#pagerTablePagosCliente1'),
			    width: 360,
			    height: (GridTotalHeight / 2) - 55,
			    footerrow: true,
			    userDataOnFooter: true,
			    altRows: true,
			    ondblClickRow: function (id, linea, columna, evento) {
			        CargarPaginaVentas2('/ModuloVentas.aspx?idVenta=' + id + '&detalle=true');
			    }
			}
			);

}


function InitCuentasPorCobrar() {
    var fInicial = $("#CxCFechaInicial").val();
    var fFinal = $("#CxCFechaFinal").val();
    $("#TableCxC").flexigrid
			(

			{
			    url: '/ModuloVentas.aspx?listado=true&todasCxC=true&fechaInicial=' + fInicial + '&fechaFinal=' + fFinal + '&',
			    dataType: 'json',
			    colModel: [
			    //id,clave,descripcion,idmarca,idcategoria,idfamilia,precio1,precio2,precio3,especifiaciones
				{display: 'No. Cot.', name: 'id', width: 40, sortable: true, align: 'center' },
                { display: 'No. Factura', name: 'DiasCredito', width: 50, sortable: true, align: 'center' },
                { display: 'No. Ped.', name: 'NoPedido', width: 40, sortable: true, align: 'center', hide: true },
                { display: 'No. Rem.', name: 'NoRemision', width: 40, sortable: true, align: 'center', hide: true },
                { display: 'No. Sal.', name: 'NoSalida', width: 40, sortable: true, align: 'center', hide: true },
                { display: 'Fecha', name: 'fechaCreacion', width: 55, sortable: true, align: 'center' },
                { display: 'F. Ped.', name: 'FechaPedido', width: 55, sortable: true, align: 'center', hide: true },
                { display: 'F. Rem.', name: 'FechaRemision', width: 55, sortable: true, align: 'center', hide: true },
                { display: 'F. Sal.', name: 'FechaSalida', width: 55, sortable: true, align: 'center', hide: true },
                { display: 'Status', name: 'status', width: 95, sortable: true, align: 'left' },
				{ display: 'Razon social', name: 'nombreCliente', width: 310, sortable: true, align: 'left' },
                { display: 'Nombre Comercial', name: 'nombrecomercialcliente', width: 335, sortable: true, align: 'left', hide: true },
                { display: 'Total', name: 'total', width: 70, sortable: true, align: 'right' },
                { display: 'Pagado', name: 'saldoPagado', width: 70, sortable: true, align: 'right' },
				{ display: 'Pendiente', name: 'saldoPendiente', width: 70, sortable: true, align: 'right' },
                { display: 'Dias Credito', name: 'DiasCredito', width: 60, sortable: true, align: 'center' },
                { display: 'Dias Vencidos', name: 'DiasVencidos', width: 60, sortable: true, align: 'center' }

				],
			    searchitems: [
				{ display: 'No. Venta', name: 'id' },
				{ display: 'Razon Social', name: 'NombreCliente', isdefault: true },
                { display: 'Nombre Comercial', name: 'NombreComercialCliente' },
                { display: 'Total', name: 'Total' }
				],
			    sortname: "id",
			    sortorder: "desc",
			    usepager: true,
			    title: 'Cuentas por Cobrar',
			    useRp: true,
			    width: 1020,
			    height: GridTotalHeight,
			    pagestat: 'Mostrando de {from} a {to} de un total de {total} registros',
			    pagetext: 'Pagina',
			    outof: 'de',
			    findtext: "Buscar <span style='font-size:8px;'>(presione Enter para realizar la busqueda)</span>",
			    procmsg: 'Procesando, Espere por favor ...',
			    nomsg: 'No hay registros',
			    resizable: false,
			    showTableToggleBtn: true,
			    blockOpacity: 0.75,
			    onSuccess: function () { AddGridTotals('TableCxC'); },
			    OnDoubleClick: function (id) { CargarPaginaVentas2('/ModuloVentas.aspx?idVenta=' + id + '&detalle=true'); }
			}
			);

}

function CargarPanelEdicionCliente() {
    var idRegistroCargar = $('#idRegistroCliente').val();
    CargarPaginaCliente('/ModuloClientes.aspx?idCliente=' + idRegistroCargar + '&editar=true');
}

function nuevoContactoCliente() {
    var noContactos = parseInt($('#cantidadContactosCliente').val());
    noContactos++;
    var plantillaContacto = $('#ContactoTemplate').html();
    plantillaContacto = plantillaContacto.replace(/IDCON/gi, noContactos);
    $("#ContenedorContactosCliente").append(plantillaContacto);
    $("#ContactoDiv" + noContactos).show();
    $('#cantidadContactosCliente').val(noContactos);
    $("#celularContactoCliente" + noContactos).mask("(999) 999-9999 Ext. ****");
    $("#telefonoContactoCliente" + noContactos).mask("(999) 999-9999 Ext. ****");
    return noContactos;
}
function cargarContactoCliente(id, nombre, apellidos, puesto, telefono, celular, email) {
    var idContacto = nuevoContactoCliente();
    $("#ConctactoId" + idContacto).val(id);
    $("#nombreContactoCliente" + idContacto).val(nombre);
    $("#apellidosContactoCliente" + idContacto).val(apellidos);
    $("#puestoContactoCliente" + idContacto).val(puesto);
    $("#telefonoContactoCliente" + idContacto).val(telefono);
    $("#celularContactoCliente" + idContacto).val(celular);
    $("#emailUsuarioContactoCliente" + idContacto).val(email.split('@')[0]);
    $("#emailDominioContactoCliente" + idContacto).val(email.split('@')[1]);
}

function quitarContactoCliente(idContacto) {
    $("#DialogoConfirmacionContacto").dialog({
        resizable: false,
        height: 240,
        width: 350,
        modal: true,
        buttons: {
            "Eliminar Contacto": function () {
                $("#ContactoDiv" + idContacto).hide();
                $('#ConctactoEliminado' + idContacto).val("true");
                $(this).dialog("close");
            },
            "Cancelar": function () {
                $(this).dialog("close");
            }
        }
    });
}

function InicializarUICliente() {
    $("#idListaPrecios").buttonset();
    $("#idListaPrecios").css("margin-top", "5px");
    $("#idListaPrecios input").css("width", "5px");
    $("#idListaPrecios span").css("width", "5px");
}


function AutocompletarCategoriasClientes() {

    $("#CategoriaCliente").autocomplete(ListaCategoriasClientes, {
        minChars: 0,
        width: 250,
        matchContains: "word",

        autoFill: false,
        formatItem: function (row, i, max) {
            return i + "/" + max + ": \"" + row.NombreCategoria;
        },
        formatMatch: function (row, i, max) {
            return row.NombreCategoria;
        },
        formatResult: function (row) {
            return row.NombreCategoria;
        }
    }).result(function (event, item) {
        with (item) {
            if (id != 0) {
                $("#idCategoriaCliente").val(id);
            }
        }

    }).setOptions({ data: ListaCategoriasClientes });

}




function initModuloClientes() {
    if ($('#cantidadContactosCliente').val() == "0")
        nuevoContactoCliente();
    AutocompletarEstados("F_Estado");
    AutocompletarEstados("Estado");
    AutocompletarCategoriasClientes();
    //AutocompletarDominios("EmailDominio");
    $("#Telefono").mask("(999) 999-9999 Ext. ****");
    $("#Telefono2").mask("(999) 999-9999 Ext. ****");
    $("#Telefono3").mask("(999) 999-9999 Ext. ****");
    $("#FAX").mask("(999) 999-9999 Ext. ****");
    $("#RFC").mask("aaaa-999999-***");
    InicializarUICliente();
}


function CopiarDatosCliente(desde, hacia) {
    $('#' + hacia + 'Calle').val($('#' + desde + 'Calle').val());
    $('#' + hacia + 'NumeroInterior').val($('#' + desde + 'NumeroInterior').val());
    $('#' + hacia + 'NumeroExterior').val($('#' + desde + 'NumeroExterior').val());
    $('#' + hacia + 'Colonia').val($('#' + desde + 'Colonia').val());
    $('#' + hacia + 'Municipio').val($('#' + desde + 'Municipio').val());
    $('#' + hacia + 'Ciudad').val($('#' + desde + 'Ciudad').val());
    $('#' + hacia + 'Estado').val($('#' + desde + 'Estado').val());
    $('#' + hacia + 'CP').val($('#' + desde + 'CP').val());
}

function showRequestCliente() {
    if ($('#idRegistroCliente').val() != "0")
        ClienteNuevo = $('#idRegistroCliente').val();
    NombreClienteEditado = $('#RazonSocial').val();
    CrearLoaderDiv('#DivClientes', 'DivClientesLoader');

}

function showResponseCliente(responseText, statusText) {
    alert('this: ' + this.tagName +
            '\nstatus: ' + statusText +
            '\n\nresponseText: \n' +
            responseText + '\n\nThe output div should have already been updated with the responseText.');
}

function showAlertaCliente(responseText, statusText) {
    // alert(responseText);
    // alert(statusText);
    if (ClienteNuevo == "0")
        MostrarAlerta("El Cliente " + NombreClienteEditado + " ha sido dado de alta en el sistema correctamente");
    else
        MostrarAlerta("El Cliente <b>" + NombreClienteEditado + "</b> ha sido actualizado correctamente!!");
}

function ShowErrorCliente(responseText, statusText) {
    MostrarError("<b>Error del sistema </b> Por favor verifique su informacion e intente de nuevo." + responseText + "---");
    $("#DivClientesLoader").remove();
}


function confirmarBorrarCliente() {
    var idCliente = $('#idRegistroCliente').val();
    MostrarConfirmacion("De verdad quiere eliminar al Cliente?", "Eliminar Cliente", function () { CargarPaginaCliente("/moduloClientes.aspx?eliminar=true&idCliente=" + idCliente); });
}


function imprimirRCxC() {
    $("#iframeLoader").attr("src", "");
    var contenido = $("#TableCxC").html();
    var fechaInicial = $("#CxCFechaInicial").val();
    var fechaFinal = $("#CxCFechaFinal").val();
    PostPrintReporte("CxC", contenido, fechaInicial, fechaFinal);
    //$("#iframeLoader").attr("src", "/ImpresionReporte.aspx?tipo=CxC&fechaInicial="+fechaInicial+"&fechaFinal="+fechaFinal+"&tablaReporte="+ contenido);
}

function impresionCliente() {
    $("#iframeLoader").attr("src", "");
    var idclienteImprimir = $("#idRegistroCliente").val();
    $("#iframeLoader").attr("src", "/ModuloClientes.aspx?imprimirCliente=true&idCliente=" + idclienteImprimir);
}



function FuncionbotonConfirmarPagoClienteCxC() {
    $(this).dialog("destroy");
    var randomnumber = Math.floor(Math.random() * 1001)
    $("#DivPagoAPedido").each(function () { $(this).remove(); });
    var template = $("#TemplatePagoCotizacion").html();
    template = template.replace(/Template/gi, "");
    $("#DivVentas").append(template);
    var fechaActual = new Date();
    var fechaActual2 = fechaActual.format("dd/mm/yyyy");
    //alert(fechaActual2);
    $("#FechaPagoPedido").val(fechaActual2).attr("readonly", "readonly").datepicker({ minDate: -30,
        maxDate: "+1M",
        numberOfMonths: 2,
        showButtonPanel: true
    });
    $('#MontoPagoPedido').val($("#totalCotizacionActualDeuda").val());
    LoadCuentasBancarias();
    $("#CuentaBAncariaPedido").addItemsCuentas(ListaCuentasBancarias);



    $("#DivPagoAPedido").dialog({
        autoOpen: true,
        height: 380,
        width: 300,
        modal: true,
        resizable: false,
        buttons: {
            "Pago a CxC": function () {

                var idCuentaPago = $('#CuentaBAncariaPedido option:selected').val();
                var noDocumentoPago = $('#NoDocumentoPedido').val();
                var fechaPago = $('#FechaPagoPedido').val();
                var totalMonto = $('#MontoPagoPedido').val();
                var idCotizacionPago = "0"; // $('#idCotizacionMostrada').val();
                var idTipoDeposito = $('#TipoDepositoBancario option:selected').val();
                var urlPago = "/ModuloVentas.aspx?RealizarPagoCotizacion=true&idVenta=" + idCotizacionPago + "&idCuentaBancaria=" + idCuentaPago + "&TotalPago=" + totalMonto + "&fechaPago=" + fechaPago + "&NoDocumento=" + noDocumentoPago + "&TipoDeposito=" + idTipoDeposito; ;
                //alert(urlPago);
                $('#loaderPagosVenta').load(urlPago, function (response, status, xhr) {
                    MostrarAlerta(response);
                    CargarPaginaVentas('/ModuloVentas.aspx?idVenta=' + idCotizacionPago + '&detalle=true');
                });

                // EnviarDocumentoEmail($('#idCotizacionMostrada').val(), $('#mensajeEmail').val());

                //$(this).dialog("destroy");
                $(this).dialog("close");

            },
            "Cancelar": function () {

                $(this).dialog("close");

            }
        },
        close: function () {
            //          $(this).dialog("destroy");
            $(this).dialog("destroy");
            // allFields.val("").removeClass("ui-state-error");
        }
    });
}